package com.liukai.bishe.ui.activity.loginAndRegister;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.AppCompatButton;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;

import com.liukai.bishe.R;
import com.liukai.bishe.model.doman.user.User;
import com.liukai.bishe.model.doman.user.UserMessage;
import com.liukai.bishe.presenter.loginAndRegisterPresenter.ILoginPresenter;
import com.liukai.bishe.presenter.loginAndRegisterPresenter.impl.LoginPresenterImpl;
import com.liukai.bishe.ui.activity.MainActivity;
import com.liukai.bishe.utils.Constants;
import com.liukai.bishe.utils.ToastUtil;
import com.liukai.bishe.view.ILoginCallBack;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener,ILoginCallBack {


    @BindView(R.id.tvUser)
    public EditText tvUser;
    @BindView(R.id.tvPass)
    public EditText tvPass;
    @BindView(R.id.btnLogin)
    public AppCompatButton btnLogin;
    @BindView(R.id.btnRegister)
    public AppCompatButton btnRegister;
    public Context context = LoginActivity.this;
    public Unbinder mBind;
    private ILoginPresenter mILoginPresenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        mBind = ButterKnife.bind(this); // 绑定ButterKnife
        initData();
        initListener();

    }

    private void initData() {
        // 创建Presenter
        mILoginPresenter = new LoginPresenterImpl();
        // 注册Presenter
        mILoginPresenter.registerCallback(this);
    }

    /**
     * 设计监听
     */
    private void initListener(){
        tvUser.setOnClickListener(this);
        tvPass.setOnClickListener(this);
        btnLogin.setOnClickListener(this);
        btnRegister.setOnClickListener(this);
    }

    /**
     * 点击事件
     * @param view
     */
    @Override
    public void onClick(View view) {

        switch (view.getId()){
            // 用户名
            case R.id.tvUser :

                break;
                // 密码
            case R.id.tvPass :

                break;

                // 登录按钮
            case R.id.btnLogin :

                // 检验是否可以发起登录请求
                validateLogin();

                break;

                // 注册按钮
            case R.id.btnRegister :

                Intent intent = new Intent(context,RegisterActivity.class);
                startActivity(intent);

                break;
        }

    }

    private void validateLogin() {
        String username = tvUser.getText().toString().trim();
        String password = tvPass.getText().toString().trim();
        tvPass.setText("");
        tvUser.setText("");
        if (username != null && password != null) {
            User user = new User();
            user.setUsername(username);
            user.setPassword(password);
            login(user);
        }
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 取消绑定ButterKnife
        if (mBind!=null) {
            mBind.unbind();
        }
        // 取消注册Presenter
        if (mILoginPresenter != null) {
            mILoginPresenter.unregisterCallback(this);
        }
    }

    /**
     * 利用LoginPresenter登录
     */
    private void login(User user){

        mILoginPresenter.login(user);


    }

    /**
     * 获取登录的返回信息
     * @param object
     */
    @Override
    public void result(Object object) {
        UserMessage userMessage = (UserMessage) object;
        ToastUtil.log(context,"userMessage",userMessage.toString());
        String code = userMessage.getCode(); // 获取登录的返回信息
        if(code.equals("1001")){
            ToastUtil.show(context,"登录成功");
            Constants.setUser(userMessage.getUser());
            Intent intent = new Intent(context,MainActivity.class);
//            intent.putExtra("user",userMessage.getUser());
            startActivity(intent);
        }else if(code.equals("1002")){
            ToastUtil.show(context,"登录失败");
        }

    }




//    //复选框
//    private CheckBox mRemenber;//记住密码
//    private boolean mPasswordFlag = false;//记住密码标志
//    private CheckBox mAutoLogin;//自动登录
//    private boolean mAutoLoginFlag = false;//自动登录标志
//
//    SharedPreferences sharedPreferences = getSharedPreferences("busApp", MODE_PRIVATE);
//
//    //如果不为空
//        if (sharedPreferences != null) {
//        String userName = sharedPreferences.getString("username", "");
//        userPassword = sharedPreferences.getString("password", "");
//        mPasswordFlag = sharedPreferences.getBoolean("remenber", false);
//        mAutoLoginFlag = sharedPreferences.getBoolean("auto", false);
//        mPhoneText.setText(userName);
//    }
//
//    //确定为true获取 记住密码，打钩
//        if (mPasswordFlag) {
//        mRemenber.setChecked(true);
//        mPasswordText.setText(userPassword);
//    }
//    //选择了自动登录后直接登录
//        if (mAutoLoginFlag){
//        mAutoLogin.setChecked(true);
//        String username = mPhoneText.getText().toString();
//        String password = mPasswordText.getText().toString();
//        login(username,password);
//
//    }
//    //注册监听
//        mRemenber.setOnClickListener(mListener);
//        mRemenber.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
//        @Override
//        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//            //记住密码
//            //如果是选中记住密码，取消记住密码、自动登录
//            if (!isChecked){
//                mAutoLogin.setChecked(false);
//                //清空密码输入框
//                mPasswordText.setText("");
//
//            }
//        }
//    });
//    //在登录时将登录页面的所有信息存放到存储文件中。
//
////1 创建 SharePreferences 对象
//
//    String username = mPhoneText.getText().toString();
//    String password = mPasswordText.getText().toString();
//                    Log.d("输入框获取的密码", "onClick: " + password);
//    //没有记住密码时 MD5密码加密
//
//    SharedPreferences sharedPreferences = getSharedPreferences("busApp", MODE_PRIVATE);
//    SharedPreferences.Editor editor = sharedPreferences.edit();
//    //2  创建Editor对象，写入值
//                    editor.putString("username", username);
//                    if (mRemenber.isChecked()) {
//        if(!mPasswordFlag){
//
//            try {
//                password = MD5Utils.getMD5(password);
//                Log.d("记住密码选中且false加密后密码", "onClick: " + password);
//            } catch (NoSuchAlgorithmException e) {
//                e.printStackTrace();
//            }
//            mPasswordFlag = true;
//
//        }
//        editor.putBoolean("remenber", mPasswordFlag);
//        editor.putString("password", password);
//        Log.d("记住密码选中写入的密码", "onClick: " + password);
//        //选中自动登录
//        if (mAutoLogin.isChecked()){
//            mAutoLoginFlag = true;
//        }else{
//            mAutoLoginFlag = false;
//        }
//        editor.putBoolean("auto", mAutoLoginFlag);
//    } else {
//        if(!mPasswordFlag){
//
//            try {
//                password = MD5Utils.getMD5(password);
//                Log.d("记住密码未选中且false加密后密码", "onClick: " + password);
//            } catch (NoSuchAlgorithmException e) {
//                e.printStackTrace();
//            }
//        }
//        //取消自动登录和记住密码,清空密码
//        mPasswordFlag = false;
//        mAutoLoginFlag = false;
//        editor.putString("password", "");
//        editor.putBoolean("remenber", mPasswordFlag);
//        editor.putBoolean("auto", mAutoLoginFlag);
//    }
//    //3  提交
//                    editor.commit();

}
